package loja.view.editor.components.panel;

import java.awt.Dimension;
import java.util.List;

import javax.swing.JLabel;
import javax.swing.border.TitledBorder;

import loja.model.entity.produto.Categoria;
import loja.model.entity.produto.Grupo;
import loja.model.handler.HandlerViewEntity;
import loja.model.service.persitence.dao.entity.impl.GrupoDao;
import loja.view.editor.components.combobox.ComboBoxEditor;
import loja.view.editor.components.comboboxmodel.GrupoComboBoxModel;
import loja.view.editor.components.label.LabelIdProperty;
import loja.view.editor.components.textfield.TextFieldProperty;

public class CategoriaPanelEditor extends EntityPanelEditor<Categoria, Integer> {

	private static final long serialVersionUID = 1L;

	private JLabel lblId;
	private JLabel lblNome;
	private JLabel lblGrupo;
	private LabelIdProperty lblIdCategoria;
	private TextFieldProperty txtNome;
	private ComboBoxEditor<Grupo> cbxGrupo;
	private List<Grupo> grupos;
	private GrupoComboBoxModel comboBoxModel;

	public CategoriaPanelEditor(
			HandlerViewEntity<Categoria, Integer> handlerViewEntity) {
		super(handlerViewEntity);
		lblId = new JLabel("ID");
		lblNome = new JLabel("NOME");
		lblGrupo = new JLabel("GRUPO");
		lblIdCategoria = new LabelIdProperty("idCategoria");
		txtNome = new TextFieldProperty("nome");
		grupos = new GrupoDao().getAll();
		comboBoxModel = new GrupoComboBoxModel(grupos);
		cbxGrupo = new ComboBoxEditor<>(comboBoxModel, "grupo");

	}

	@Override
	public void onStart() {

		setBorder(new TitledBorder("Categoria"));

		txtNome.setPreferredSize(new Dimension(150, 23));

		add(lblId, "split 2");
		add(lblIdCategoria, "wrap");
		add(lblNome, "wrap");
		add(txtNome, "wrap, growx");
		add(lblGrupo, "wrap");
		add(cbxGrupo, "growx");

		handlerViewEntity.addPropertyView(lblIdCategoria);
		handlerViewEntity.addPropertyView(txtNome);
		handlerViewEntity.addPropertyView(cbxGrupo);

		addComponentEditor(txtNome);
		addComponentEditor(lblIdCategoria);
		addComponentEditor(cbxGrupo);

		super.onStart();
	}

}
